home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / nivb / sync.frm < prev    next >
Text File  |  1995-05-07  |  3KB  |  97 lines

  1. VERSION 2.00
  2. Begin Form SyncForm 
  3.    Caption         =   "Synchronization Services Test"
  4.    ClientHeight    =   2640
  5.    ClientLeft      =   1095
  6.    ClientTop       =   1485
  7.    ClientWidth     =   6705
  8.    Height          =   3045
  9.    Left            =   1035
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   2640
  12.    ScaleWidth      =   6705
  13.    Top             =   1140
  14.    Width           =   6825
  15.    Begin Timer SyncTimer 
  16.       Interval        =   1000
  17.       Left            =   360
  18.       Top             =   1680
  19.    End
  20.    Begin CommandButton CancelButton 
  21.       Caption         =   "&Cancel"
  22.       Height          =   495
  23.       Left            =   2640
  24.       TabIndex        =   0
  25.       Top             =   2040
  26.       Width           =   1095
  27.    End
  28.    Begin Label Label2 
  29.       Caption         =   "Run NWTEST at least 4 times (on this or multiple workstations) and select ""Synchronization"" from the Test menu. The  current user count will be updated every second."
  30.       Height          =   615
  31.       Left            =   120
  32.       TabIndex        =   3
  33.       Top             =   720
  34.       Width           =   6375
  35.    End
  36.    Begin Label Label1 
  37.       Caption         =   "Scenario:  There is a resource on the network (a program, for example) that you want to restrict to 3 simultaneous users."
  38.       Height          =   495
  39.       Left            =   120
  40.       TabIndex        =   2
  41.       Top             =   120
  42.       Width           =   6495
  43.    End
  44.    Begin Label CountLabel 
  45.       Height          =   255
  46.       Left            =   1800
  47.       TabIndex        =   1
  48.       Top             =   1560
  49.       Width           =   2895
  50.    End
  51. End
  52. Dim semaHandle&
  53. Const SEMA_VALUE = 3
  54. Dim exiting%
  55.  
  56. Sub CancelButton_Click ()
  57.     Unload SyncForm
  58. End Sub
  59.  
  60. Sub Form_Load ()
  61.     exiting% = False
  62.     ccode% = OpenSemaphore("VB_SYNCH_EXAMPLE", SEMA_VALUE, semaHandle&, openCount%)
  63.     If (ccode% <> SUCCESSFUL) Then
  64.         MsgBox "Unable to open semaphore", MB_OK, "Error"
  65.         Unload SyncForm
  66.     End If
  67.  
  68.     If (openCount% > SEMA_VALUE) Then
  69.         MsgBox "Unable to add another user.  Network resource is already in use by " + Str$(openCount% - 1) + " users", MB_OK, "Warning"
  70.         exiting% = True
  71.     Else
  72.         CountLabel.Caption = "Current user count = " + Str$(openCount%)
  73.     End If
  74. End Sub
  75.  
  76. Sub Form_Unload (Cancel As Integer)
  77.     ccode% = CloseSemaphore(semaHandle&)
  78. End Sub
  79.  
  80. Sub SyncTimer_Timer ()
  81.     If (exiting%) Then
  82.         Unload SyncForm
  83.     Else
  84.         ccode% = ExamineSemaphore(semaHandle&, SEMA_VALUE, openCount%)
  85.         If (ccode% <> SUCCESSFUL) Then
  86.             MsgBox "Unable to examine semaphore value.", MB_OK, "Error"
  87.         End If
  88.  
  89.         CountLabel.Caption = "Current user count = " + Str$(openCount%)
  90.     End If
  91. End Sub
  92.  
  93. Sub Timer1_Timer ()
  94.     
  95. End Sub
  96.  
  97.